#ifndef ISHADER_H
#define ISHADER_H
#pragma pack(push,1)

#include "../assetfilemgr.h"

class IVertexShader
{
public:
	static void	*AssetInit( IAssetFile *pFile, const CMasterIndexEntry *pEntry, void* context );
	static void	AssetUninit( void *ptr, void* context );
	static void	AssetFixup( CAssetFileMgr *pMgr, const IAssetFile *pFile, void *ptr, const CMasterIndexEntry *pEntry );

	static void	Register( CAssetFileMgr *pMgr )
	{
		pMgr->AddAssetType("VSHADER",AssetInit,AssetUninit,AssetFixup);
	}
};

class IPixelShader
{
public:
	static void	*AssetInit( IAssetFile *pFile, const CMasterIndexEntry *pEntry, void* context );
	static void	AssetUninit( void *ptr, void* context );
	static void	AssetFixup( CAssetFileMgr *pMgr, const IAssetFile *pFile, void *ptr, const CMasterIndexEntry *pEntry );

	static void	Register( CAssetFileMgr *pMgr )
	{
		pMgr->AddAssetType("PSHADER",AssetInit,AssetUninit,AssetFixup);
	}
};

#pragma pack(pop)
#endif
